home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text;
-
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Graphics;
- import java.awt.Rectangle;
- import java.awt.Shape;
- import javax.swing.event.DocumentEvent;
- import javax.swing.text.Position.Bias;
-
- class WrappedPlainView$WrappedLine extends View {
- // $FF: synthetic field
- private final WrappedPlainView this$0;
- int nlines;
-
- WrappedPlainView$WrappedLine(WrappedPlainView var1, Element var2) {
- super(var2);
- this.this$0 = var1;
- }
-
- final int calculateLineCount() {
- int var1 = 0;
- int var2 = ((View)this).getEndOffset();
-
- int var4;
- for(int var3 = ((View)this).getStartOffset(); var3 < var2; var3 = var4 == var3 ? var2 : var4) {
- ++var1;
- var4 = this.this$0.calculateBreakPosition(var3, var2);
- }
-
- return var1;
- }
-
- public float getPreferredSpan(int var1) {
- switch (var1) {
- case 0:
- return (float)this.this$0.getWidth();
- case 1:
- if (this.nlines == 0 || this.this$0.widthChanging) {
- this.nlines = this.calculateLineCount();
- }
-
- int var2 = this.nlines * this.this$0.metrics.getHeight();
- return (float)var2;
- default:
- throw new IllegalArgumentException("Invalid axis: " + var1);
- }
- }
-
- public void insertUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
- int var4 = this.calculateLineCount();
- if (this.nlines != var4) {
- this.nlines = var4;
- this.this$0.preferenceChanged(this, false, true);
- ((View)this).getContainer().repaint();
- } else if (var2 != null) {
- Container var5 = ((View)this).getContainer();
- Rectangle var6 = (Rectangle)var2;
- ((Component)var5).repaint(var6.x, var6.y, var6.width, var6.height);
- }
-
- }
-
- public Shape modelToView(int var1, Shape var2, Position.Bias var3) throws BadLocationException {
- Rectangle var4 = var2.getBounds();
- var4.height = this.this$0.metrics.getHeight();
- var4.width = 1;
- int var5 = ((View)this).getEndOffset();
- int var6 = ((View)this).getStartOffset();
-
- for(int var7 = var3 == Bias.Forward ? var1 : Math.max(var6, var1 - 1); var6 < var5; var4.y += var4.height) {
- int var8 = this.this$0.calculateBreakPosition(var6, var5);
- if (var1 >= var6 && var7 < var8) {
- this.this$0.loadText(var6, var1);
- var4.x += Utilities.getTabbedTextWidth(this.this$0.lineBuffer, this.this$0.metrics, var4.x, this.this$0, var6);
- return var4;
- }
-
- if (var8 == var5 && var1 == var5) {
- if (var1 > var6) {
- this.this$0.loadText(var6, var1);
- var4.x += Utilities.getTabbedTextWidth(this.this$0.lineBuffer, this.this$0.metrics, var4.x, this.this$0, var6);
- }
-
- return var4;
- }
-
- var6 = var8 == var6 ? var5 : var8;
- }
-
- throw new BadLocationException((String)null, var1);
- }
-
- public void paint(Graphics var1, Shape var2) {
- Rectangle var3 = (Rectangle)var2;
- int var4 = var3.y + this.this$0.metrics.getAscent();
- int var5 = var3.x;
- JTextComponent var6 = (JTextComponent)((View)this).getContainer();
- Highlighter var7 = var6.getHighlighter();
- LayeredHighlighter var8 = var7 instanceof LayeredHighlighter ? (LayeredHighlighter)var7 : null;
- int var9 = ((View)this).getEndOffset();
-
- for(int var10 = ((View)this).getStartOffset(); var10 < var9; var4 += this.this$0.metrics.getHeight()) {
- int var11 = this.this$0.calculateBreakPosition(var10, var9);
- if (var8 != null) {
- if (var11 == var9) {
- var8.paintLayeredHighlights(var1, var10, var11 - 1, var2, var6, this);
- } else {
- var8.paintLayeredHighlights(var1, var10, var11, var2, var6, this);
- }
- }
-
- this.this$0.drawLine(var10, var11, var1, var5, var4);
- var10 = var11 == var10 ? var9 : var11;
- }
-
- }
-
- public void removeUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
- int var4 = this.calculateLineCount();
- if (this.nlines != var4) {
- this.nlines = var4;
- this.this$0.preferenceChanged(this, false, true);
- ((View)this).getContainer().repaint();
- } else if (var2 != null) {
- Container var5 = ((View)this).getContainer();
- Rectangle var6 = (Rectangle)var2;
- ((Component)var5).repaint(var6.x, var6.y, var6.width, var6.height);
- }
-
- }
-
- public int viewToModel(float var1, float var2, Shape var3, Position.Bias[] var4) {
- var4[0] = Bias.Forward;
- Rectangle var5 = (Rectangle)var3;
- Document var6 = ((View)this).getDocument();
- int var7 = (int)var1;
- int var8 = (int)var2;
- if (var8 < var5.y) {
- return ((View)this).getStartOffset();
- } else if (var8 > var5.y + var5.height) {
- return ((View)this).getEndOffset() - 1;
- } else {
- var5.height = this.this$0.metrics.getHeight();
- int var9 = ((View)this).getEndOffset();
-
- for(int var10 = ((View)this).getStartOffset(); var10 < var9; var5.y += var5.height) {
- int var11 = this.this$0.calculateBreakPosition(var10, var9);
- if (var8 >= var5.y && var8 < var5.y + var5.height) {
- if (var7 < var5.x) {
- return var10;
- }
-
- if (var7 > var5.x + var5.width) {
- return var11;
- }
-
- int var12 = Utilities.getTabbedTextOffset(this.this$0.lineBuffer, this.this$0.metrics, var5.x, var7, this.this$0, var10);
- return Math.min(var10 + var12, var9 - 1);
- }
-
- var10 = var11 == var10 ? var9 : var11;
- }
-
- return ((View)this).getEndOffset() - 1;
- }
- }
- }
-